/*
 * @ author: yyh
 * @ create Time: 2024/1/2
 * @ description: 商品模块
**/
const mongoose = require('mongoose')
const Schema = mongoose.Schema; // 拿到当前数据库相应的集合对象
const {db} = require('../index')


// goodsName goodsImg status des discount
// 设计商品表的集合
const goodsSchema = new Schema({ // 设计用户集合的字段以及数据类型
   goodsName: {
      type: String,
      required: true,
      unique: true
   },
   goodsImg: { type: String,  required: true, }, // 商品图片
   status: {
      type: Number,
      default: 1,
      enum: [0,1]  // 1 已上架  0 已下架 后期再加
   },
   des: {
      required: true,
      type: String,
      // 字符串的最小长度
      minlength: [2, "商品描述长度不能小于2"],
      // 字符串的最大长度
      maxlength: [20, "商品描述最大不能超过20"],
   },
   // 供应商
   supplierName: { type: String,  required: true, }, // 供应商名称
   supplierPhone: { type: String,  required: true, }, // 供应商联系方式
   supplierPrice:  { type: Number,  required: true, }, // 供应商联系方式
   weight: { type: String,  required: true, },
   price: {
      type: Number,
      required: true,
   },
   discount: {
      type: Number,
      min: 0,
      max: 10,
      // 默认值
      default: 10
   }, // 商品默认10折就是不打折，0 折扣就是免费赠送1
   createDate: {
      type: Date,
      // 默认值
      default: Date.now
   },
   updateDate: {
      type: Date,
      // 默认值
      default: Date.now
   },
   sortIndex: {
      type: Number,
      default: 1
   }

},{ versionKey: false } ) // 设置不带版本号

goodsSchema.set('toJSON', {
   virtuals: true
})

goodsSchema.options.toJSON = {
   transform(doc, ret, options) {
      ret.goodsId = doc.id;
      delete ret._id;
      delete ret.__v;
      return ret;
   }
}
module.exports = db.model('Goods', goodsSchema);